package _interface

import "math"

//// 定义一个简单的接口
//type Shape interface {
//	Area() float64
//}
//
//// 定义两个实现 Shape 接口的结构体
//type Circle struct {
//	Radius float64
//}
//
//func (c Circle) Area() float64 {
//	return 3.14159 * c.Radius * c.Radius
//}
//
//type Rectangle struct {
//	Width  float64
//	Height float64
//}
//
//func (r Rectangle) Area() float64 {
//	return r.Width * r.Height
//}

// 定义 Shape 接口
type Shape interface {
	Area() float64
	Perimeter() float64
}

// 定义 Circle 结构体
type Circle struct {
	Radius float64
}

// 实现 Circle 结构体的方法，以满足 Shape 接口
func (c Circle) Area() float64 {
	return math.Pi * c.Radius * c.Radius
}

func (c Circle) Perimeter() float64 {
	return 2 * math.Pi * c.Radius
}

// 定义 Rectangle 结构体
type Rectangle struct {
	Width  float64
	Height float64
}

// 实现 Rectangle 结构体的方法，以满足 Shape 接口
func (r Rectangle) Area() float64 {
	return r.Width * r.Height
}

func (r Rectangle) Perimeter() float64 {
	return 2 * (r.Width + r.Height)
}
